package com.macro.mall.portal.vo;

import com.macro.mall.product.dto.QueryStockDoorDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Data
@ApiModel(description = "订单提交接口-请求报文",value = "订单提交接口-请求报文")
public class OrderCommitReqVO {

    /**
     * 订单ID
     */
    //@NotBlank(message = "订单ID不能为空")
    @ApiModelProperty(notes = "订单ID",required = false,example = "",position = 1)
    private String orderId;

    /**
     * 下单手机号
     */
    @NotBlank(message = "下单手机号不能为空")
    @ApiModelProperty(notes = "下单手机号",required = true,example = "",position = 2)
    private String mobile;

    /**
     * 订单支付方式 00-线下支付;01-线上微信;02-线上支付宝
     */
    @NotBlank(message = "订单支付方式不能为空")
    @ApiModelProperty(notes = "订单支付方式 00-线下支付;01-线上微信;02-线上支付宝",required = true,example = "",position = 3)
    private String orderPayType;


    /**
     * 商品Id编码
     */
    @NotBlank(message = "商品Id编码不能为空")
    @ApiModelProperty(notes = "商品Id编码",required = true,example = "",position = 4)
    private String goodId;

    /**
     * 商品sku编码
     */
    @NotBlank(message = "商品sku编码不能为空")
    @ApiModelProperty(notes = "商品sku编码",required = true,example = "",position = 4)
    private String goodSkuCode;

    /**
     * 商品名称
     */
    @NotBlank(message = "商品名称不能为空")
    @ApiModelProperty(notes = "商品名称",required = true,example = "",position = 5)
    private String goodName;

    /**
     * 商品简介
     */
    @NotBlank(message = "商品简介不能为空")
    @ApiModelProperty(notes = "商品简介",required = true,example = "",position = 6)
    private String goodResume;

    /**
     * 商品主图地址
     */
    @NotBlank(message = "商品主图地址不能为空")
    @ApiModelProperty(notes = "商品主图地址",required = true,example = "",position = 7)
    private String goodImgUrl;

    /**
     * 商品数量
     */
    @NotNull(message = "商品数量不能为空")
    @ApiModelProperty(notes = "商品数量",required = true,example = "",position = 8)
    private Integer goodCount;

    /**
     * 商品单位
     */
    @NotBlank(message = "商品单位不能为空")
    @ApiModelProperty(notes = "商品单位",required = true,example = "",position = 9)
    private String goodUnit;

    /**
     * 订单应付金额
     */
    @NotNull(message = "订单应付金额不能为空")
    @ApiModelProperty(notes = "订单应付金额",required = true,example = "",position = 10)
    private BigDecimal orderCash;

    /**
     * 地址信息
     */
    @NotBlank(message = "地址信息不能为空")
    @ApiModelProperty(notes = "地址信息",required = true,example = "",position = 11)
    private String addressInfo;

//    /**
//     * 000-待支付、001-已取消、002-待服务、003-服务中、004-已完成、005-已退款
//     */
//    private String orderStatus;
//
    /**
     * 订单生成时间
     */
    @ApiModelProperty(notes = "订单生成时间 yyyyMMddHHmmss ",required = false,example = "",position = 12)
    //@Length(min = 14,max = 14,message = "订单生成时间格式错误")
    //@NotNull(message = "订单生成时间不能为空")
    private String createTime;

    /**
     * 订单生成时间
     */
    @ApiModelProperty(notes = "订单备注 ",required = false,example = "",position = 13)
    private String note;

    @ApiModelProperty(notes = "订单预约时间 yyyyMMddHHmmss ",required = true,example = "",position = 14)
    private String makeAppointment;

    /**
     * 订单预约段
     */
    @ApiModelProperty(notes = "订单预约段  ",required = true,example = "",position = 14)
    private String serviceTimeQuantum;

    @ApiModelProperty(notes = "订单类型 01-服务订单, 02-视频订单",required = true,example = "",position = 15)
    private String orderType;
    @ApiModelProperty(notes = "服务开始时间",required = true,example = "",position = 16)
    private String serviceSTime;
    @ApiModelProperty(notes = "服务结束时间",required = true,example = "",position = 17)
    private String serviceETime;

    @ApiModelProperty(notes = "库存id",required = true,example = "",position = 18)
    private String stockId;
    @ApiModelProperty(notes = "场馆地址",required = true,example = "",position = 19)
    private String siteAddr;


    @ApiModelProperty(notes = "机构名称",required = true,example = "",position = 21)
    private String deptName;

    @ApiModelProperty(notes = "店面名称",required = true,example = "",position = 22)
    private String storeName;

    @ApiModelProperty(notes = "服务日期",required = false,example = "",position = 20)
    private String stockDate;
    @ApiModelProperty(notes = "服务时间",required = false,example = "",position = 21)
    private String stockTime;

    @ApiModelProperty(notes = "上门服务查库存参数",required = false,example = "",position = 22)
    private QueryStockDoorDto serverStockByDoor;



//
//    /**
//     * 支付有效期,预留字段后续根据该字段进行自动取消
//     */
//    private Date payEffect;
//
//    /**
//     * 支付状态变更最新时间
//     */
//    private Date statusUpdateTime;
//
//    /**
//     * 现金回退状态 00-未回退、01-已回退 02-回退失败
//     */
//    private String caseReturnStatus;
//
//    /**
//     * 现金回退结果
//     */
//    private String caseReturnResult;


}
